package com.demo.java.OD401_450.OD420;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【寿司转盘(C&D卷)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146259996
 */
public class OdMain {
    public static int[] sushiDiscount(int[] prices) {
        int n = prices.length;  // 获取寿司的数量
        int[] result = new int[n];  // 用于存储每个寿司的折扣后的价格

        // 对每个寿司进行遍历
        for (int i = 0; i < n; i++) {
            int totalPrice = prices[i];  // 当前寿司的价格
            int j = (i + 1) % n;  // 从当前寿司的下一个寿司开始查找

            // 在环形数组中查找价格比当前寿司低的寿司
            while (j != i) {  // 直到返回到原始位置
                if (prices[j] < prices[i]) {
                    totalPrice += prices[j];  // 如果找到价格较低的寿司，进行折扣
                    break;
                }
                j = (j + 1) % n;  // 移动到下一个寿司，注意环形数组
            }

            result[i] = totalPrice;  // 将折扣后的价格存入结果数组
        }

        return result;  // 返回所有寿司的折扣后价格
    }

    public static void main(String[] args) {
        // 创建扫描器对象读取输入数据
        Scanner scanner = new Scanner(System.in);

        // 读取输入的寿司价格
        String input = scanner.nextLine();
        String[] inputPrices = input.split(" ");
        int[] prices = new int[inputPrices.length];

        // 将输入的价格字符串转换为整数
        for (int i = 0; i < inputPrices.length; i++) {
            prices[i] = Integer.parseInt(inputPrices[i]);
        }

        // 调用sushiDiscount函数计算折扣后的价格
        int[] result = sushiDiscount(prices);

        // 输出每个寿司的折扣后价格
        for (int value : result) {
            System.out.print(value + " ");
        }
    }
}
